#ifndef SAMOLOT_MESSAGE
#define SAMOLOT_MESSAGE

#include <iostream>
#include "pair.h"
#include <string>


class SamolotMessage
{
	public:


		const int& getMsgSrc(){
		return msgSrc;			
		};
		void setMsgSrc( const int& dd) {
		msgSrc = dd;};

		const int& getMsgDst(){
		return msgDst;
		};
		void setMsgDst(const int& dd){
		msgDst = dd;};

		const int& getIdHelper(){
		return idHelper;};
		void setIdHelper(const int&dd){
		idHelper = dd;};

		const int& getSendMsgType(){
		return sendMsgType;};
		void setSendMsgType(const int& dd){
		sendMsgType = dd;};

		const int& getReceiveMsgType(){
		return receiveMsgType;};
		void setReceiveMsgType(const int& dd){
		receiveMsgType = dd;};

		void setPosition(const position & pp){
		pos = pp;};
		position getPosition(){
		return pos;};

		const int& getIdWiezy(){
		return idWiezy;};
		void setIdWiezy(const int& dd){
		idWiezy = dd;};
	
		const int& getIdAwarii(){
		return idAwarii;};
		void setIdAwarii(const int& dd){
		idAwarii = dd;};

		const int& getIdSamolotu(){
		return idSamolotu;};
		void setIdSamolotu(const int& dd){
		idSamolotu = dd;};

		const float& getFuelLvl(){
		return fuelLvl;};
		void setFuelLvl(const float& dd){
		fuelLvl = dd;};

		void sendSamolotMessage( void);
		
		void setNazwaLotniska(std::string ss){
			nazwaLotniska = ss;
		}
		std::string getNazwaLotniska () {
		return nazwaLotniska;};
		
		void setLiczbaLotnisk (int dd){
		liczbaLotnisk = dd;};
		int getLiczbaLotnisk(){
		return liczbaLotnisk;};
		
		void setCzasOczekiwania (int dd) {
		czasOczekiwania = dd;};
		int getCzasOczekiwania() {
		return czasOczekiwania;};
		
		void setTypAwarii (int dd) {
		typAwarii = dd;};
		int getTypAwarii() {
		return typAwarii;};
		
		void setMocAwarii (int dd) {
		mocAwarii = dd;};
		int getMocAwarii() {
		return mocAwarii;};
		
		
		void setPredkosc(float _predkosc)
		{
			predkosc = _predkosc;
		}
		float getPredkosc()
		{	
			return predkosc;
		}
		
		void setSpalanie(float _spalanie)
		{
			spalanie=_spalanie;
		}
		float getSpalanie()
		{	
			return spalanie;
		}
		void setTypSamolotu(std::string _typSamolotu)
		{
			typSamolotu = _typSamolotu;
		}
		std::string getTypSamolotu()
		{
			return typSamolotu;
		}
		std::string getNazwaAwarii()
		{
			return nazwaAwarii;
		}
		void setNazwaAwarii(std::string _nazwaAwarii)
		{
			nazwaAwarii=_nazwaAwarii;
		}
		

	private:

		int msgDst; //kto ma byc odbiorca wiadomosci
		int msgSrc; //kto wyslal wiadomosc do samolotu 	
		int idHelper;// jesli wiadomosc przyszla z wiezy, to musimy wiedziec, z ktorej. ew id wiazy, do ktorej wysylamy wiadomosc	
		int sendMsgType;	
		int receiveMsgType;
		position pos; //uzywane przy informowaniu o polozeniu
		int idWiezy;/*	
			uzywana gdy baza odpowiada na zapuytanie o najblizsze lontnisko 
			przy poleceniu zmiany kursu		
			*/
		std::string nazwaLotniska;
		int idAwarii;//gdy dostaje info o wystapieniu awarii i gdy infomuje wieze o krzywdzie jaka mi sie stala
		float fuelLvl;// gdy wysylam info o poziomie paliwa lub gdy otrzymuje info o startowej pojemnosci baku
		float predkosc;//predkosc samoloty
		float spalanie; // spalanie samolotu
		int idSamolotu;// gdy zglaszam sie do nowej strefy wplywow
		int liczbaLotnisk; //wielkosc wypelniana przy pobieraniu liczby lotnisk
		int czasOczekiwania; // czas jaki ma czekac przed wyslaniem kolejnej prosby o zezwolenie na start
		int typAwarii;
		int mocAwarii;
		std::string typSamolotu; //zeby pytac o dane techniczne samolotu podajac jego nazwe
		std::string nazwaAwarii;//gdy zdarzenai wysylaja nam info awari w tej zmiennej przesylaja jej identyfikator
};
#endif









